(test/is (str 'hello) "hello")
(test/is (str 5) "5")
(test/is (str "hello") "hello")

(test/is (kl-to-clj  (trap-error (hd 5) (lambda E -1))) -1)
(test/is (kl-to-clj  (trap-error (tl 5) (lambda E -1))) -1)
(test/is (hd [1 2 3]) 1)
(test/is (tl [1 2 3]) [2 3])
(test/is (cons 5 10) [5 '| 10])

(set x (absvector 100))
(test/is (kl-to-clj (cl/= (<-address (value x) 0) fail!)))
(test/is (kl-to-clj (cl/= (<-address (value x) 99) fail!)))
(test/is (kl-to-clj  (trap-error (<-address (value x) 100) (lambda E -1))) -1)
(address-> (value x) 10 100)
(test/is (<-address (value x) 10) 100)

(test/is (kl-to-clj  (trap-error (/ 1 0) (lambda E -1))) -1)
(test/is (kl-to-clj  (trap-error (/ 1 0) (lambda E (error-to-string E)))) "division by zero")

(test/is 10e2 1000)
(test/is (= 1 1.0))

(test/is (hd (cons 1 [2 3])) 1)
(test/is (tl (cons 1 [2 3])) [2 3])

(test/is (cn "hello " "world!") "hello world!")
(test/is (pos "hello" 0) "h")
(test/is (pos "hello" 3) (pos (tlstr "hello") 2))
(test/is (tlstr "hello") "ello")

(test/is (cl/symbol? (intern "x")))
(test/is (str (intern "x")) "x")
